package twoD.hofem;

/**
 * The <code>GaussLegendreQPts</code> class provides Gauss-Legendre quadrature
 * points and weights for functions defined on the interval [-1, 1].
 * 
 * @author Matthias Baitsch
 */
public final class GaussPoints {

	private static final double[][][] GQW = {
			{ { 0.0, 2.0 } },
			{ { -0.5773502691896257645091488, 1.00000000000000000000000 },
					{ 0.5773502691896257645091488, 1.00000000000000000000000 } },
			{ { -0.7745966692414833770358531, 0.555555555555555555555556 },
					{ 0, 0.888888888888888888888889 },
					{ 0.7745966692414833770358531, 0.55555555555555555555556 } },
			{
					{ -0.8611363115940525752239465, 0.347854845137453857373064 },
					{ -0.3399810435848562648026658, 0.652145154862546142626936 },
					{ 0.3399810435848562648026658, 0.652145154862546142626936 },
					{ 0.8611363115940525752239465, 0.34785484513745385737306 } },
			{
					{ -0.9061798459386639927976269, 0.236926885056189087514264 },
					{ -0.5384693101056830910363144, 0.478628670499366468041292 },
					{ 0, 0.568888888888888888888889 },
					{ 0.5384693101056830910363144, 0.478628670499366468041292 },
					{ 0.9061798459386639927976269, 0.23692688505618908751426 } },
			{
					{ -0.9324695142031520278123016, 0.171324492379170345040296 },
					{ -0.6612093864662645136613996, 0.360761573048138607569834 },
					{ -0.2386191860831969086305017, 0.467913934572691047389870 },
					{ 0.2386191860831969086305017, 0.467913934572691047389870 },
					{ 0.6612093864662645136613996, 0.360761573048138607569834 },
					{ 0.9324695142031520278123016, 0.17132449237917034504030 } },
			{
					{ -0.9491079123427585245261897, 0.129484966168869693270611 },
					{ -0.7415311855993944398638648, 0.279705391489276667901468 },
					{ -0.4058451513773971669066064, 0.381830050505118944950370 },
					{ 0, 0.417959183673469387755102 },
					{ 0.4058451513773971669066064, 0.381830050505118944950370 },
					{ 0.7415311855993944398638648, 0.279705391489276667901468 },
					{ 0.9491079123427585245261897, 0.12948496616886969327061 } },
			{
					{ -0.9602898564975362316835609, 0.101228536290376259152531 },
					{ -0.7966664774136267395915539, 0.222381034453374470544356 },
					{ -0.5255324099163289858177390, 0.313706645877887287337962 },
					{ -0.1834346424956498049394761, 0.362683783378361982965150 },
					{ 0.1834346424956498049394761, 0.362683783378361982965150 },
					{ 0.5255324099163289858177390, 0.313706645877887287337962 },
					{ 0.7966664774136267395915539, 0.222381034453374470544356 },
					{ 0.9602898564975362316835609, 0.10122853629037625915253 } },
			{
					{ -0.9681602395076260898355762, 0.081274388361574411971892 },
					{ -0.8360311073266357942994298, 0.180648160694857404058472 },
					{ -0.6133714327005903973087020, 0.260610696402935462318743 },
					{ -0.3242534234038089290385380, 0.312347077040002840068630 },
					{ 0, 0.330239355001259763164525 },
					{ 0.3242534234038089290385380, 0.312347077040002840068630 },
					{ 0.6133714327005903973087020, 0.260610696402935462318743 },
					{ 0.8360311073266357942994298, 0.180648160694857404058472 },
					{ 0.9681602395076260898355762, 0.08127438836157441197189 } },
			{
					{ -0.9739065285171717200779640, 0.066671344308688137593569 },
					{ -0.8650633666889845107320967, 0.149451349150580593145776 },
					{ -0.6794095682990244062343274, 0.219086362515982043995535 },
					{ -0.4333953941292471907992659, 0.269266719309996355091227 },
					{ -0.1488743389816312108848260, 0.295524224714752870173893 },
					{ 0.1488743389816312108848260, 0.295524224714752870173893 },
					{ 0.4333953941292471907992659, 0.269266719309996355091227 },
					{ 0.6794095682990244062343274, 0.219086362515982043995535 },
					{ 0.8650633666889845107320967, 0.149451349150580593145776 },
					{ 0.9739065285171717200779640, 0.06667134430868813759357 } },
			{
					{ -0.9782286581460569928039380, 0.055668567116173666482754 },
					{ -0.8870625997680952990751578, 0.125580369464904624634694 },
					{ -0.7301520055740493240934163, 0.186290210927734251426098 },
					{ -0.5190961292068118159257257, 0.233193764591990479918524 },
					{ -0.2695431559523449723315320, 0.262804544510246662180689 },
					{ 0, 0.272925086777900630714484 },
					{ 0.2695431559523449723315320, 0.262804544510246662180689 },
					{ 0.5190961292068118159257257, 0.233193764591990479918524 },
					{ 0.7301520055740493240934163, 0.186290210927734251426098 },
					{ 0.8870625997680952990751578, 0.125580369464904624634694 },
					{ 0.9782286581460569928039380, 0.05566856711617366648275 } },
			{
					{ -0.9815606342467192506905491, 0.047175336386511827194616 },
					{ -0.9041172563704748566784659, 0.106939325995318430960255 },
					{ -0.7699026741943046870368938, 0.160078328543346226334653 },
					{ -0.5873179542866174472967024, 0.203167426723065921749064 },
					{ -0.3678314989981801937526915, 0.233492536538354808760850 },
					{ -0.1252334085114689154724414, 0.249147045813402785000562 },
					{ 0.1252334085114689154724414, 0.249147045813402785000562 },
					{ 0.3678314989981801937526915, 0.233492536538354808760850 },
					{ 0.5873179542866174472967024, 0.203167426723065921749064 },
					{ 0.7699026741943046870368938, 0.160078328543346226334653 },
					{ 0.9041172563704748566784659, 0.106939325995318430960255 },
					{ 0.9815606342467192506905491, 0.04717533638651182719462 } },
			{
					{ -0.9841830547185881494728294, 0.040484004765315879520022 },
					{ -0.9175983992229779652065478, 0.092121499837728447914422 },
					{ -0.8015780907333099127942065, 0.138873510219787238463602 },
					{ -0.6423493394403402206439846, 0.178145980761945738280047 },
					{ -0.4484927510364468528779129, 0.207816047536888502312523 },
					{ -0.2304583159551347940655281, 0.226283180262897238412090 },
					{ 0, 0.232551553230873910194590 },
					{ 0.2304583159551347940655281, 0.226283180262897238412090 },
					{ 0.4484927510364468528779129, 0.207816047536888502312523 },
					{ 0.6423493394403402206439846, 0.178145980761945738280047 },
					{ 0.8015780907333099127942065, 0.138873510219787238463602 },
					{ 0.9175983992229779652065478, 0.092121499837728447914422 },
					{ 0.9841830547185881494728294, 0.04048400476531587952002 } },
			{
					{ -0.9862838086968123388415973, 0.035119460331751863031833 },
					{ -0.9284348836635735173363911, 0.080158087159760209805633 },
					{ -0.8272013150697649931897947, 0.121518570687903184689415 },
					{ -0.6872929048116854701480198, 0.157203167158193534569602 },
					{ -0.5152486363581540919652907, 0.185538397477937813741717 },
					{ -0.3191123689278897604356718, 0.205198463721295603965924 },
					{ -0.1080549487073436620662447, 0.215263853463157790195876 },
					{ 0.1080549487073436620662447, 0.215263853463157790195876 },
					{ 0.3191123689278897604356718, 0.205198463721295603965924 },
					{ 0.5152486363581540919652907, 0.185538397477937813741717 },
					{ 0.6872929048116854701480198, 0.157203167158193534569602 },
					{ 0.8272013150697649931897947, 0.121518570687903184689415 },
					{ 0.9284348836635735173363911, 0.080158087159760209805633 },
					{ 0.9862838086968123388415973, 0.03511946033175186303183 } },
			{
					{ -0.9879925180204854284895657, 0.030753241996117268354628 },
					{ -0.9372733924007059043077589, 0.070366047488108124709267 },
					{ -0.8482065834104272162006483, 0.107159220467171935011870 },
					{ -0.7244177313601700474161861, 0.139570677926154314447805 },
					{ -0.5709721726085388475372267, 0.166269205816993933553201 },
					{ -0.3941513470775633698972074, 0.186161000015562211026801 },
					{ -0.2011940939974345223006283, 0.198431485327111576456118 },
					{ 0, 0.202578241925561272880620 },
					{ 0.2011940939974345223006283, 0.198431485327111576456118 },
					{ 0.3941513470775633698972074, 0.186161000015562211026801 },
					{ 0.5709721726085388475372267, 0.166269205816993933553201 },
					{ 0.7244177313601700474161861, 0.139570677926154314447805 },
					{ 0.8482065834104272162006483, 0.107159220467171935011870 },
					{ 0.9372733924007059043077589, 0.070366047488108124709267 },
					{ 0.9879925180204854284895657, 0.03075324199611726835463 } },
			{
					{ -0.9894009349916499325961542, 0.027152459411754094851781 },
					{ -0.9445750230732325760779884, 0.062253523938647892862844 },
					{ -0.8656312023878317438804679, 0.095158511682492784809925 },
					{ -0.7554044083550030338951012, 0.124628971255533872052476 },
					{ -0.6178762444026437484466718, 0.149595988816576732081502 },
					{ -0.4580167776572273863424194, 0.169156519395002538189312 },
					{ -0.2816035507792589132304605, 0.182603415044923588866764 },
					{ -0.09501250983763744018531934, 0.189450610455068496285397 },
					{ 0.09501250983763744018531934, 0.189450610455068496285397 },
					{ 0.2816035507792589132304605, 0.182603415044923588866764 },
					{ 0.4580167776572273863424194, 0.169156519395002538189312 },
					{ 0.6178762444026437484466718, 0.149595988816576732081502 },
					{ 0.7554044083550030338951012, 0.124628971255533872052476 },
					{ 0.8656312023878317438804679, 0.095158511682492784809925 },
					{ 0.9445750230732325760779884, 0.062253523938647892862844 },
					{ 0.9894009349916499325961542, 0.02715245941175409485178 } },
			{
					{ -0.9905754753144173356754340, 0.024148302868547931960110 },
					{ -0.9506755217687677612227170, 0.055459529373987201129440 },
					{ -0.8802391537269859021229557, 0.085036148317179180883535 },
					{ -0.7815140038968014069252301, 0.111883847193403971094788 },
					{ -0.6576711592166907658503022, 0.135136368468525473286320 },
					{ -0.5126905370864769678862466, 0.154045761076810288081432 },
					{ -0.3512317634538763152971855, 0.168004102156450044509971 },
					{ -0.1784841814958478558506775, 0.176562705366992646325271 },
					{ 0, 0.179446470356206525458266 },
					{ 0.1784841814958478558506775, 0.176562705366992646325271 },
					{ 0.3512317634538763152971855, 0.168004102156450044509971 },
					{ 0.5126905370864769678862466, 0.154045761076810288081432 },
					{ 0.6576711592166907658503022, 0.135136368468525473286320 },
					{ 0.7815140038968014069252301, 0.111883847193403971094788 },
					{ 0.8802391537269859021229557, 0.085036148317179180883535 },
					{ 0.9506755217687677612227170, 0.055459529373987201129440 },
					{ 0.9905754753144173356754340, 0.02414830286854793196011 } },
			{
					{ -0.9915651684209309467300160, 0.021616013526483310313343 },
					{ -0.9558239495713977551811959, 0.049714548894969796453335 },
					{ -0.8926024664975557392060606, 0.076425730254889056529130 },
					{ -0.8037049589725231156824175, 0.100942044106287165562814 },
					{ -0.6916870430603532078748911, 0.122555206711478460184519 },
					{ -0.5597708310739475346078715, 0.140642914670650651204731 },
					{ -0.4117511614628426460359318, 0.154684675126265244925418 },
					{ -0.2518862256915055095889729, 0.164276483745832722986054 },
					{ -0.08477501304173530124226185, 0.169142382963143591840656 },
					{ 0.08477501304173530124226185, 0.169142382963143591840656 },
					{ 0.2518862256915055095889729, 0.164276483745832722986054 },
					{ 0.4117511614628426460359318, 0.154684675126265244925418 },
					{ 0.5597708310739475346078715, 0.140642914670650651204731 },
					{ 0.6916870430603532078748911, 0.122555206711478460184519 },
					{ 0.8037049589725231156824175, 0.100942044106287165562814 },
					{ 0.8926024664975557392060606, 0.076425730254889056529130 },
					{ 0.9558239495713977551811959, 0.049714548894969796453335 },
					{ 0.9915651684209309467300160, 0.02161601352648331031334 } },
			{
					{ -0.9924068438435844031890177, 0.019461788229726477036312 },
					{ -0.9602081521348300308527788, 0.044814226765699600332838 },
					{ -0.9031559036148179016426609, 0.069044542737641226580708 },
					{ -0.8227146565371428249789225, 0.091490021622449999464462 },
					{ -0.7209661773352293786170959, 0.111566645547333994716024 },
					{ -0.6005453046616810234696382, 0.128753962539336227675516 },
					{ -0.4645707413759609457172671, 0.142606702173606611775746 },
					{ -0.3165640999636298319901173, 0.152766042065859666778855 },
					{ -0.1603586456402253758680961, 0.158968843393954347649956 },
					{ 0, 0.161054449848783695979164 },
					{ 0.1603586456402253758680961, 0.158968843393954347649956 },
					{ 0.3165640999636298319901173, 0.152766042065859666778855 },
					{ 0.4645707413759609457172671, 0.142606702173606611775746 },
					{ 0.6005453046616810234696382, 0.128753962539336227675516 },
					{ 0.7209661773352293786170959, 0.111566645547333994716024 },
					{ 0.8227146565371428249789225, 0.091490021622449999464462 },
					{ 0.9031559036148179016426609, 0.069044542737641226580708 },
					{ 0.9602081521348300308527788, 0.044814226765699600332838 },
					{ 0.9924068438435844031890177, 0.01946178822972647703631 } },
			{
					{ -0.9931285991850949247861224, 0.017614007139152118311862 },
					{ -0.9639719272779137912676661, 0.040601429800386941331040 },
					{ -0.9122344282513259058677524, 0.062672048334109063569507 },
					{ -0.8391169718222188233945291, 0.083276741576704748724758 },
					{ -0.7463319064601507926143051, 0.101930119817240435036750 },
					{ -0.6360536807265150254528367, 0.118194531961518417312377 },
					{ -0.5108670019508270980043641, 0.131688638449176626898494 },
					{ -0.3737060887154195606725482, 0.142096109318382051329298 },
					{ -0.2277858511416450780804962, 0.149172986472603746787829 },
					{ -0.07652652113349733375464041, 0.152753387130725850698084 },
					{ 0.07652652113349733375464041, 0.152753387130725850698084 },
					{ 0.2277858511416450780804962, 0.149172986472603746787829 },
					{ 0.3737060887154195606725482, 0.142096109318382051329298 },
					{ 0.5108670019508270980043641, 0.131688638449176626898494 },
					{ 0.6360536807265150254528367, 0.118194531961518417312377 },
					{ 0.7463319064601507926143051, 0.101930119817240435036750 },
					{ 0.8391169718222188233945291, 0.083276741576704748724758 },
					{ 0.9122344282513259058677524, 0.062672048334109063569507 },
					{ 0.9639719272779137912676661, 0.040601429800386941331040 },
					{ 0.9931285991850949247861224, 0.01761400713915211831186 } },
			{
					{ -0.9937521706203895002602420, 0.016017228257774333324225 },
					{ -0.9672268385663062943166222, 0.036953789770852493799951 },
					{ -0.9200993341504008287901871, 0.057134425426857208283636 },
					{ -0.8533633645833172836472506, 0.076100113628379302017052 },
					{ -0.7684399634756779086158779, 0.093444423456033861553290 },
					{ -0.6671388041974123193059667, 0.108797299167148377663475 },
					{ -0.5516188358872198070590188, 0.121831416053728534195367 },
					{ -0.4243421202074387835736689, 0.132268938633337461781053 },
					{ -0.2880213168024010966007925, 0.139887394791073154722133 },
					{ -0.1455618541608950909370310, 0.144524403989970059063827 },
					{ 0, 0.146081133649690427191985 },
					{ 0.1455618541608950909370310, 0.144524403989970059063827 },
					{ 0.2880213168024010966007925, 0.139887394791073154722133 },
					{ 0.4243421202074387835736689, 0.132268938633337461781053 },
					{ 0.5516188358872198070590188, 0.121831416053728534195367 },
					{ 0.6671388041974123193059667, 0.108797299167148377663475 },
					{ 0.7684399634756779086158779, 0.093444423456033861553290 },
					{ 0.8533633645833172836472506, 0.076100113628379302017052 },
					{ 0.9200993341504008287901871, 0.057134425426857208283636 },
					{ 0.9672268385663062943166222, 0.036953789770852493799951 },
					{ 0.9937521706203895002602420, 0.01601722825777433332422 } },
			{
					{ -0.9942945854823992920730314, 0.014627995298272200684991 },
					{ -0.9700604978354287271239510, 0.033774901584814154793302 },
					{ -0.9269567721871740005206929, 0.052293335152683285940312 },
					{ -0.8658125777203001365364256, 0.069796468424520488094961 },
					{ -0.7878168059792081620042780, 0.085941606217067727414444 },
					{ -0.6944872631866827800506898, 0.100414144442880964932079 },
					{ -0.5876404035069115929588769, 0.112932296080539218393401 },
					{ -0.4693558379867570264063307, 0.123252376810512424285561 },
					{ -0.3419358208920842251581474, 0.131173504787062370732965 },
					{ -0.2078604266882212854788465, 0.136541498346015171352574 },
					{ -0.06973927331972222121384180, 0.139251872855631993375410 },
					{ 0.06973927331972222121384180, 0.139251872855631993375410 },
					{ 0.2078604266882212854788465, 0.136541498346015171352574 },
					{ 0.3419358208920842251581474, 0.131173504787062370732965 },
					{ 0.4693558379867570264063307, 0.123252376810512424285561 },
					{ 0.5876404035069115929588769, 0.112932296080539218393401 },
					{ 0.6944872631866827800506898, 0.100414144442880964932079 },
					{ 0.7878168059792081620042780, 0.085941606217067727414444 },
					{ 0.8658125777203001365364256, 0.069796468424520488094961 },
					{ 0.9269567721871740005206929, 0.052293335152683285940312 },
					{ 0.9700604978354287271239510, 0.033774901584814154793302 },
					{ 0.9942945854823992920730314, 0.01462799529827220068499 } },
			{
					{ -0.9947693349975521235239257, 0.013411859487141772081309 },
					{ -0.9725424712181152319560241, 0.030988005856979444310694 },
					{ -0.9329710868260161023491970, 0.048037671731084668571641 },
					{ -0.8767523582704416673781569, 0.064232421408525852127170 },
					{ -0.8048884016188398921511184, 0.079281411776718954922893 },
					{ -0.7186613631319501944616245, 0.092915766060035147477019 },
					{ -0.6196098757636461563850973, 0.104892091464541410074086 },
					{ -0.5095014778460075496897930, 0.114996640222411364941644 },
					{ -0.3903010380302908314214889, 0.123049084306729530467578 },
					{ -0.2641356809703449305338695, 0.128905722188082149978595 },
					{ -0.1332568242984661109317427, 0.132462039404696617371642 },
					{ 0, 0.133654572186106175351457 },
					{ 0.1332568242984661109317427, 0.132462039404696617371642 },
					{ 0.2641356809703449305338695, 0.128905722188082149978595 },
					{ 0.3903010380302908314214889, 0.123049084306729530467578 },
					{ 0.5095014778460075496897930, 0.114996640222411364941644 },
					{ 0.6196098757636461563850973, 0.104892091464541410074086 },
					{ 0.7186613631319501944616245, 0.092915766060035147477019 },
					{ 0.8048884016188398921511184, 0.079281411776718954922893 },
					{ 0.8767523582704416673781569, 0.064232421408525852127170 },
					{ 0.9329710868260161023491970, 0.048037671731084668571641 },
					{ 0.9725424712181152319560241, 0.030988005856979444310694 },
					{ 0.9947693349975521235239257, 0.01341185948714177208131 } },
			{
					{ -0.9951872199970213601799974, 0.012341229799987199546806 },
					{ -0.9747285559713094981983920, 0.028531388628933663181308 },
					{ -0.9382745520027327585236490, 0.044277438817419806168603 },
					{ -0.8864155270044010342131543, 0.059298584915436780746368 },
					{ -0.8200019859739029219539499, 0.073346481411080305734034 },
					{ -0.7401241915785543642438281, 0.086190161531953275917185 },
					{ -0.6480936519369755692524958, 0.097618652104113888269881 },
					{ -0.5454214713888395356583756, 0.107444270115965634782577 },
					{ -0.4337935076260451384870842, 0.115505668053725601353344 },
					{ -0.3150426796961633743867933, 0.121670472927803391204463 },
					{ -0.1911188674736163091586398, 0.125837456346828296121375 },
					{ -0.06405689286260562608504308, 0.127938195346752156974056 },
					{ 0.06405689286260562608504308, 0.127938195346752156974056 },
					{ 0.1911188674736163091586398, 0.125837456346828296121375 },
					{ 0.3150426796961633743867933, 0.121670472927803391204463 },
					{ 0.4337935076260451384870842, 0.115505668053725601353344 },
					{ 0.5454214713888395356583756, 0.107444270115965634782577 },
					{ 0.6480936519369755692524958, 0.097618652104113888269881 },
					{ 0.7401241915785543642438281, 0.086190161531953275917185 },
					{ 0.8200019859739029219539499, 0.073346481411080305734034 },
					{ 0.8864155270044010342131543, 0.059298584915436780746368 },
					{ 0.9382745520027327585236490, 0.044277438817419806168603 },
					{ 0.9747285559713094981983920, 0.028531388628933663181308 },
					{ 0.9951872199970213601799974, 0.01234122979998719954681 } },
			{
					{ -0.9955569697904980979087849, 0.011393798501026287947903 },
					{ -0.9766639214595175114983154, 0.026354986615032137261902 },
					{ -0.9429745712289743394140112, 0.040939156701306312655623 },
					{ -0.8949919978782753688510420, 0.054904695975835191925937 },
					{ -0.8334426287608340014210211, 0.068038333812356917207187 },
					{ -0.7592592630373576305772829, 0.080140700335001018013235 },
					{ -0.6735663684734683644851206, 0.091028261982963649811497 },
					{ -0.5776629302412229677236898, 0.100535949067050644202207 },
					{ -0.4730027314457149605221821, 0.108519624474263653116094 },
					{ -0.3611723058093878377358217, 0.114858259145711648339326 },
					{ -0.2438668837209884320451904, 0.119455763535784772228178 },
					{ -0.1228646926107103963873598, 0.122242442990310041688960 },
					{ 0, 0.123176053726715451203903 },
					{ 0.1228646926107103963873598, 0.122242442990310041688960 },
					{ 0.2438668837209884320451904, 0.119455763535784772228178 },
					{ 0.3611723058093878377358217, 0.114858259145711648339326 },
					{ 0.4730027314457149605221821, 0.108519624474263653116094 },
					{ 0.5776629302412229677236898, 0.100535949067050644202207 },
					{ 0.6735663684734683644851206, 0.091028261982963649811497 },
					{ 0.7592592630373576305772829, 0.080140700335001018013235 },
					{ 0.8334426287608340014210211, 0.068038333812356917207187 },
					{ 0.8949919978782753688510420, 0.054904695975835191925937 },
					{ 0.9429745712289743394140112, 0.040939156701306312655623 },
					{ 0.9766639214595175114983154, 0.026354986615032137261902 },
					{ 0.9955569697904980979087849, 0.01139379850102628794790 } },
			{
					{ -0.9958857011456169290032170, 0.010551372617343007155651 },
					{ -0.9783854459564709911005804, 0.024417851092631908789616 },
					{ -0.9471590666617142501359153, 0.037962383294362763950303 },
					{ -0.9026378619843070742176656, 0.050975825297147811998320 },
					{ -0.8454459427884980187975071, 0.063274046329574835539454 },
					{ -0.7763859488206788561929672, 0.074684149765659745887076 },
					{ -0.6964272604199572648638139, 0.085045894313485239210448 },
					{ -0.6066922930176180632319787, 0.094213800355914148463665 },
					{ -0.5084407148245057176957031, 0.102059161094425423238414 },
					{ -0.4030517551234863064810774, 0.108471840528576590656579 },
					{ -0.2920048394859568951428354, 0.113361816546319666549441 },
					{ -0.1768588203568901839690577, 0.116660443485296582044663 },
					{ -0.05923009342931320709371858, 0.118321415279262276516371 },
					{ 0.05923009342931320709371858, 0.118321415279262276516371 },
					{ 0.1768588203568901839690577, 0.116660443485296582044663 },
					{ 0.2920048394859568951428354, 0.113361816546319666549441 },
					{ 0.4030517551234863064810774, 0.108471840528576590656579 },
					{ 0.5084407148245057176957031, 0.102059161094425423238414 },
					{ 0.6066922930176180632319787, 0.094213800355914148463665 },
					{ 0.6964272604199572648638139, 0.085045894313485239210448 },
					{ 0.7763859488206788561929672, 0.074684149765659745887076 },
					{ 0.8454459427884980187975071, 0.063274046329574835539454 },
					{ 0.9026378619843070742176656, 0.050975825297147811998320 },
					{ 0.9471590666617142501359153, 0.037962383294362763950303 },
					{ 0.9783854459564709911005804, 0.024417851092631908789616 },
					{ 0.9958857011456169290032170, 0.01055137261734300715565 } },
			{
					{ -0.9961792628889885669388872, 0.009798996051294360261150 },
					{ -0.9799234759615012228558734, 0.022686231596180623196034 },
					{ -0.9509005578147050068519080, 0.035297053757419711022578 },
					{ -0.9094823206774911043006450, 0.047449412520615062704097 },
					{ -0.8562079080182944903027372, 0.058983536859833599110301 },
					{ -0.7917716390705082271443973, 0.069748823766245592984323 },
					{ -0.7170134737394236992948162, 0.079604867773057771263075 },
					{ -0.6329079719464951409277346, 0.088423158543756950194323 },
					{ -0.5405515645794568949003009, 0.096088727370028507565653 },
					{ -0.4411482517500268805859742, 0.102501637817745798671248 },
					{ -0.3359939036385088997303190, 0.107578285788533187212163 },
					{ -0.2264593654395368588572391, 0.111252488356845192672163 },
					{ -0.1139725856095299669328950, 0.113476346108965148620370 },
					{ 0, 0.114220867378956989045046 },
					{ 0.1139725856095299669328950, 0.113476346108965148620370 },
					{ 0.2264593654395368588572391, 0.111252488356845192672163 },
					{ 0.3359939036385088997303190, 0.107578285788533187212163 },
					{ 0.4411482517500268805859742, 0.102501637817745798671248 },
					{ 0.5405515645794568949003009, 0.096088727370028507565653 },
					{ 0.6329079719464951409277346, 0.088423158543756950194323 },
					{ 0.7170134737394236992948162, 0.079604867773057771263075 },
					{ 0.7917716390705082271443973, 0.069748823766245592984323 },
					{ 0.8562079080182944903027372, 0.058983536859833599110301 },
					{ 0.9094823206774911043006450, 0.047449412520615062704097 },
					{ 0.9509005578147050068519080, 0.035297053757419711022578 },
					{ 0.9799234759615012228558734, 0.022686231596180623196034 },
					{ 0.9961792628889885669388872, 0.00979899605129436026115 } },
			{
					{ -0.9964424975739544499504364, 0.009124282593094517738816 },
					{ -0.9813031653708727536945599, 0.021132112592771259751500 },
					{ -0.9542592806289381972541018, 0.032901427782304379977631 },
					{ -0.9156330263921320738696894, 0.044272934759004227839588 },
					{ -0.8658925225743950489422546, 0.055107345675716745431483 },
					{ -0.8056413709171791714478860, 0.065272923966999595793398 },
					{ -0.7356108780136317720281445, 0.074646214234568779023932 },
					{ -0.6566510940388649612198982, 0.083113417228901218390396 },
					{ -0.5697204718114017193080033, 0.090571744393032840942186 },
					{ -0.4758742249551182610344118, 0.096930657997929915850489 },
					{ -0.3762515160890787102213572, 0.102112967578060769814217 },
					{ -0.2720616276351780776768264, 0.106055765922846417910416 },
					{ -0.1645692821333807712814718, 0.108711192258294135253572 },
					{ -0.05507928988403427042651653, 0.110047013016475196282376 },
					{ 0.05507928988403427042651653, 0.110047013016475196282376 },
					{ 0.1645692821333807712814718, 0.108711192258294135253572 },
					{ 0.2720616276351780776768264, 0.106055765922846417910416 },
					{ 0.3762515160890787102213572, 0.102112967578060769814217 },
					{ 0.4758742249551182610344118, 0.096930657997929915850489 },
					{ 0.5697204718114017193080033, 0.090571744393032840942186 },
					{ 0.6566510940388649612198982, 0.083113417228901218390396 },
					{ 0.7356108780136317720281445, 0.074646214234568779023932 },
					{ 0.8056413709171791714478860, 0.065272923966999595793398 },
					{ 0.8658925225743950489422546, 0.055107345675716745431483 },
					{ 0.9156330263921320738696894, 0.044272934759004227839588 },
					{ 0.9542592806289381972541018, 0.032901427782304379977631 },
					{ 0.9813031653708727536945599, 0.021132112592771259751500 },
					{ 0.9964424975739544499504364, 0.00912428259309451773882 } },
			{
					{ -0.9966794422605965861631915, 0.008516903878746409654264 },
					{ -0.9825455052614131748709260, 0.019732085056122705983860 },
					{ -0.9572855957780877257982080, 0.030740492202093622644409 },
					{ -0.9211802329530587850937534, 0.041402062518682836104830 },
					{ -0.8746378049201027904177934, 0.051594826902497923912594 },
					{ -0.8181854876152524449895722, 0.061203090657079138542110 },
					{ -0.7524628517344771339126101, 0.070117933255051278569581 },
					{ -0.6782145376026865151561850, 0.078238327135763783828145 },
					{ -0.5962817971382278203795862, 0.085472257366172527545345 },
					{ -0.5075929551242276421026279, 0.091737757139258763347966 },
					{ -0.4131528881740086638907066, 0.096963834094408606301900 },
					{ -0.3140316378676399349481959, 0.101091273759914966121821 },
					{ -0.2113522861660010745063757, 0.104073310077729373913328 },
					{ -0.1062782301326792301709824, 0.105876155097320941406591 },
					{ 0, 0.106479381718314244246511 },
					{ 0.1062782301326792301709824, 0.105876155097320941406591 },
					{ 0.2113522861660010745063757, 0.104073310077729373913328 },
					{ 0.3140316378676399349481959, 0.101091273759914966121821 },
					{ 0.4131528881740086638907066, 0.096963834094408606301900 },
					{ 0.5075929551242276421026279, 0.091737757139258763347966 },
					{ 0.5962817971382278203795862, 0.085472257366172527545345 },
					{ 0.6782145376026865151561850, 0.078238327135763783828145 },
					{ 0.7524628517344771339126101, 0.070117933255051278569581 },
					{ 0.8181854876152524449895722, 0.061203090657079138542110 },
					{ 0.8746378049201027904177934, 0.051594826902497923912594 },
					{ 0.9211802329530587850937534, 0.041402062518682836104830 },
					{ 0.9572855957780877257982080, 0.030740492202093622644409 },
					{ 0.9825455052614131748709260, 0.019732085056122705983860 },
					{ 0.9966794422605965861631915, 0.00851690387874640965426 } },
			{
					{ -0.9968934840746495402716301, 0.007968192496166605615466 },
					{ -0.9836681232797472099700326, 0.018466468311090959142302 },
					{ -0.9600218649683075122168710, 0.028784707883323369349719 },
					{ -0.9262000474292743258793243, 0.038799192569627049596802 },
					{ -0.8825605357920526815431165, 0.048402672830594052902938 },
					{ -0.8295657623827683974428981, 0.057493156217619066481722 },
					{ -0.7677774321048261949179773, 0.065974229882180495128129 },
					{ -0.6978504947933157969322924, 0.073755974737705206268244 },
					{ -0.6205261829892428611404776, 0.080755895229420215354695 },
					{ -0.5366241481420198992641698, 0.086899787201082979802388 },
					{ -0.4470337695380891767806099, 0.092122522237786128717633 },
					{ -0.3527047255308781134710372, 0.096368737174644259639469 },
					{ -0.2546369261678898464398051, 0.099593420586795267062780 },
					{ -0.1538699136085835469637947, 0.101762389748405504596429 },
					{ -0.05147184255531769583302521, 0.102852652893558840341286 },
					{ 0.05147184255531769583302521, 0.102852652893558840341286 },
					{ 0.1538699136085835469637947, 0.101762389748405504596429 },
					{ 0.2546369261678898464398051, 0.099593420586795267062780 },
					{ 0.3527047255308781134710372, 0.096368737174644259639469 },
					{ 0.4470337695380891767806099, 0.092122522237786128717633 },
					{ 0.5366241481420198992641698, 0.086899787201082979802388 },
					{ 0.6205261829892428611404776, 0.080755895229420215354695 },
					{ 0.6978504947933157969322924, 0.073755974737705206268244 },
					{ 0.7677774321048261949179773, 0.065974229882180495128129 },
					{ 0.8295657623827683974428981, 0.057493156217619066481722 },
					{ 0.8825605357920526815431165, 0.048402672830594052902938 },
					{ 0.9262000474292743258793243, 0.038799192569627049596802 },
					{ 0.9600218649683075122168710, 0.028784707883323369349719 },
					{ 0.9836681232797472099700326, 0.018466468311090959142302 },
					{ 0.9968934840746495402716301, 0.00796819249616660561547 } } };

	/** The maximum number of Gauss points provided by this class */
	public static final int MAX_N = GQW.length;

	private static void checkN(int n) {
		if (n > MAX_N) {
			throw new IllegalArgumentException(
					"Not enough Gauss points. n too large: " + n);
		}
	}

	/**
	 * Returns the i-th Gauss point for a Gauss-Legendre quadrature with n
	 * points on the interval [-1, 1].
	 * 
	 * @param n
	 *            the number of points to be used for integration.
	 * @param i
	 *            index of the gauss point.
	 * @return the gauss point
	 */
	public static double getPoint(int n, int i) {
		checkN(n);
		return GQW[n - 1][i][0];
	}

	/**
	 * Returns the weighting factor of the i-th Gauss point for a Gauss-Legendre
	 * quadrature with n points on the interval [-1, 1].
	 * 
	 * @param n
	 *            the number of points to be used for integration.
	 * @param i
	 *            index of the gauss point.
	 * @return the weighting factor for the corresponding gauss point
	 */
	public static double getWeight(int n, int i) {
		checkN(n);
		return GQW[n - 1][i][1];
	}

}
